package com.linkhub.oms.entity;

import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import java.time.LocalDate;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;

import com.linkhub.oms.common.enums.mp.DataStatusEnum;
import com.linkhub.oms.common.enums.mp.RechargeStatusEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * <p>
 * 用户充值记录表
 * </p>
 *
 * @author Frank
 * @since 2024-05-26
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("t_user_recharge_record")
@ApiModel(value="UserRechargeRecordEntity对象", description="用户充值记录表")
public class UserRechargeRecordEntity implements Serializable {


    @ApiModelProperty(value = "主键")
    @TableId(value = "Fid", type = IdType.AUTO)
    private Long id;

    @ApiModelProperty(value = "用户id")
    @TableField("Fuser_id")
    private String userId;

    @ApiModelProperty(value = "交易id")
    @TableField("Ftransaction_id")
    private String transactionId;

    @ApiModelProperty(value = "提交日期")
    @TableField("Fsubmit_date")
    private LocalDate submitDate;

    @ApiModelProperty(value = "付款卡_账户名")
    @TableField("Fpay_account")
    private String payAccount;

    @ApiModelProperty(value = "付款卡_银行名称")
    @TableField("Fpay_bank_name")
    private String payBankName;

    @ApiModelProperty(value = "付款卡_银行卡号")
    @TableField("Fpay_card_number")
    private String payCardNumber;

    @ApiModelProperty(value = "转账币种")
    @TableField("Ftransfer_currency_type")
    private String transferCurrencyType;

    @ApiModelProperty(value = "转账金额")
    @TableField("Ftransfer_amount")
    private BigDecimal transferAmount;

    @ApiModelProperty(value = "转账日期")
    @TableField("Ftransfer_date")
    private LocalDate transferDate;

    @ApiModelProperty(value = "转账银行流水号")
    @TableField("Ftransfer_bank_statement")
    private String transferBankStatement;

    /**
     * 转账当天，转账金额币种 对 USD 的汇率
     */
    @ApiModelProperty(value = "充值提交时的汇率,币种=USD")
    @TableField("Ftransfer_exchange_rate")
    private BigDecimal transferExchangeRate;

    @ApiModelProperty(value = "到账金额,币种同转账金额")
    @TableField("Freceived_amount")
    private BigDecimal receivedAmount;

    /**
     * 到账日期当天，转账金额币种 对 USD 的汇率
     */
    @ApiModelProperty(value = "到账的汇率,币种=USD")
    @TableField("Freceived_exchange_rate")
    private BigDecimal receivedExchangeRate;

    @ApiModelProperty(value = "到账日期")
    @TableField("Freceived_date")
    private LocalDate receivedDate;

    @ApiModelProperty(value = "收款卡_银行名称")
    @TableField("Freceived_bank_name")
    private String receivedBankName;

    @ApiModelProperty(value = "收款卡_银行卡号")
    @TableField("Freceived_card_number")
    private String receivedCardNumber;

    @ApiModelProperty(value = "到账银行流水号_财务审核")
    @TableField("Freceived_bank_statement")
    private String receivedBankStatement;

    @ApiModelProperty(value = "手续费币种")
    @TableField("Ffee_currency_type")
    private String feeCurrencyType;

    @ApiModelProperty(value = "手续费")
    @TableField("Ffee")
    private BigDecimal fee;

    @ApiModelProperty(value = "实际充值金额，币种=USD")
    @TableField("Factual_recharge_amount")
    private BigDecimal actualRechargeAmount;

    @ApiModelProperty(value = "充值状态：0-审核中 1-已到账 2-已拒绝")
    @TableField("Frecharge_status")
    private RechargeStatusEnum rechargeStatus;

    @ApiModelProperty(value = "拒绝原因，审核拒绝时填写")
    @TableField("Frefuse_reason")
    private String refuseReason;

    @ApiModelProperty(value = "操作人用户id")
    @TableField("Fupdate_user_id")
    private String updateUserId;

    @ApiModelProperty(value = "创建人用户id")
    @TableField("Fcreated_user_id")
    private String createdUserId;

    @ApiModelProperty(value = "数据状态：1-有效；0-无效")
    @TableField("Fdata_status")
    private DataStatusEnum dataStatus;

    @ApiModelProperty(value = "创建时间")
    @TableField("Fcreated_time")
    private LocalDateTime createdTime;

    @ApiModelProperty(value = "修改时间")
    @TableField("Fupdate_time")
    private LocalDateTime updateTime;


}
